﻿#define _CRT_SECURE_NO_WARNINGS 1
//对字符串中的所有单词进行倒排。
//说明：
//1、构成单词的字符只有26个大写或小写英文字母；
//2、非构成单词的字符均视为单词间隔符；
//3、要求倒排后的单词间隔符以一个空格表示；如果原字符串中相邻单词间有多个间隔符时，倒排转换后也只允许出现一个空格间隔符；
//4、每个单词最长20个字母；
//方法1
//#include <stdio.h>
//#include <string.h>
////c = getchar()
////
//int main() {
//
//    char c;
//    char word[100][22] = { '\0' };//初始化数组
//    int num = 0, top = 0;
//    while ((c = getchar()) != EOF) 
//    {
//
//        if (c >= 'a' && c <= 'z' || c >= 'A' && c <= 'Z')
//            word[num][top++] = c;
//        else {
//            num++;
//            top = 0;
//        }
//    }
//    for (int i = num - 1; i >= 0; i--) {
//        printf("%s ", word[i]);
//    }
//    return 0;
//}
//方法2
//#include <stdio.h>
//#include <stdlib.h>
//
//int main() {
//    char str[100][22];
//    int i = 0;
//    int x;
//    while (1) {
//        x = scanf("%[a-z|A-Z]", str[i]);//scanf函数的读入指定字符集的功能
//        if (getchar() == '\n') break;
//        if (x) i++;
//    }
//    for (int j = i; j >= 0; j--) {
//        printf("%s ", str[j]);
//    }
//    return 0;
//}
//有一种兔子，从出生后第3个月起每个月都生一只兔子，小兔子长到第三个月后每个月又生一只兔子。
//例子：假设一只兔子第3个月出生，那么它第5个月开始会每个月生一只兔子。
//一月的时候有一只兔子，假如兔子都不死，问第n个月的兔子总数为多少？
//数据范围：输入满足
//1
//≤
//𝑛
//≤
//31
//
//1≤n≤31
//#include <stdio.h>
//
//int count(int n)
//{
//    if (n == 1 || n == 2)
//        return 1;
//    else
//        return count(n - 1) + count(n - 2);//本质上是斐波那锲数列，用递归来计算
//}//f(n)=f(n-1)+f(n-2)
//int main()
//{
//    int num, res;
//    while (scanf("%d", &num) != EOF)
//    {
//        res = count(num);
//        printf("%d\n", res);
//    }
//}
//数列的定义如下：数列的第一项为n，以后各项为前一项的平方根，求数列的前m项的和。
#include <stdio.h>
#include <math.h>
int main()
{
    double i = 0.00;
    int j = 0;
    int n = 0;
    double arr[1000];
    while (scanf("%lf%d", &i, &n))
    {
        double sum = i;
        arr[0] = i;
        for (j = 1; j < n; j++)
        {
            arr[j] = sqrt(arr[j - 1]);
            sum += arr[j];
        }
        printf("%.2lf ", sum);
    }
    return 0;
}
int main()
{
    double n = 0.00;
    int m = 0;

    while (~scanf("%lf %d", &n, &m))
    {
        double sum = 0.00;//这里不能用float，只能用double
        for (int i = 0; i < m; i++)//控制m次
        {
            sum += n;
            n = sqrt(n);
        }
        printf("%.2lf\n", sum);
    }

    return 0;
}